import axios from './axios'
import { toast, modal } from '../utils/extendApi'
import { getStorage } from '../utils/storage'
import {env} from './env'

const instance = new axios({
  baseURL: env.baseURL,
  timeout: 10000,
})

// 请求拦截器
instance.interceptors.request = (config) => {
  // 1.携带token
  const token = getStorage('token')
  if (token) {
    config.header['token'] = token
  }
  return config
}
// 响应拦截器
instance.interceptors.response = async (response) => {
  // console.log(response)
  const { isSuccess, data } = response
  // 1.微信请求api的问题，只有请求超时才是请求失败
  if (!isSuccess) {
    toast({
      title: '网络连接超时，请重试', icon: 'error'
    })
    return response
  }
  // 2.状态为成功200，摘取核心数据
  if (data.code == 200) {
    return data
  }
  // 3.后端返回错误请求失败，这里也是正确状态，需要根据状态码判断
  // 状态为成功208，没有token权限，返回登录页
  if (data.code == 208) {
    await modal({ content: '登录失败，请清新登录', showCancel: false })
    wx.navigateTo({
      url: '/pages/login/login',
    })
    return Promise.reject(response)
  }
  // 4.状态为其他，说明是其他异常
  toast({
    title: '网络连接异常', icon: 'error'
  })
  return Promise.reject(response)
}

 export default instance